package com.nkzy.mapper;

import com.nkzy.pojo.User;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper  //IoC控制
public interface UserMapper {

    /**
     * 根据ID查询用户记录
     * @param id 用户ID
     * @return 用户对象
     */
    @Select("SELECT * FROM user WHERE id = #{id}")
    User selectUserById(Long id);

    /**
     * 插入一个新的用户记录
     * @param user 用户对象
     * @return 插入成功的记录数
     */
    @Insert("INSERT INTO user (id, username, password, phone, info, status, balance, create_time, update_time) " +
            "VALUES (#{id}, #{username}, #{password}, #{phone}, #{info}, #{status}, #{balance}, #{createTime}, #{updateTime})")
    int insertUser(User user);

    /**
     * 更新指定ID的用户记录
     * @param user 用户对象
     * @return 更新成功的记录数
     */
    @Update("UPDATE user SET username = #{username}, password = #{password}, phone = #{phone}, info = #{info}, " +
            "status = #{status}, balance = #{balance}, create_time = #{createTime}, update_time = #{updateTime} " +
            "WHERE id = #{id}")
    int updateUser(User user);

    /**
     * 删除指定ID的用户记录
     * @param id 用户ID
     * @return 删除成功的记录数
     */
    @Delete("DELETE FROM user WHERE id = #{id}")
    int deleteUser(Long id);

    /**
     * 查询所有用户记录
     * @return 用户对象列表
     */
    @Select("SELECT * FROM user")
    List<User> selectAllUsers();
}